package mysql8学习.高级.第15章_锁;

/**
 * 5.锁监控
 * 关于MySQL锁的监控，我们一般可以通过检查InnoDB_row_lock
 * 等状态变量来分析系统上的行锁的争夺情况
 *   show status like 'innodb_row_lock%';
 *
 *   Innodb_row_Lock_current_waits  当前正在等待锁的数量
 *   Innodb_row_Lock_time           从系统启动到现在锁定总时间长度; (等待总时长)
 *   Innodb_row_Lock_time_avg       每次等待所花平均时间; (等待平均时长)
 *   Innodb_row_Lock_time_max       从系统启动到现在等待最长的一次所花的时间;
 *   Innodb_row_Lock_waits          系统启动后到现在总共等待的次数; (等待总次数)
 *
 * 其他监控方法:
 *   ● MySQL把事务和锁的信息记录在了 information_schema 库中，涉及到的三张表分别是
 *      INNODB_TRX、INNODB_LOCKS和INNODB_LOCK_WAITS
 *   ● MySQL5.7及之前，可以通过information_schema.INNODB_LOCKS查看事务的锁情况，但只能看到阻塞事务的锁;
 *      如果事务并未被阻塞，则在该表中看不到该事务的锁情况。
 *   ● MySQL8.0删除了 information_schema.INNODB_LOCKS,添加了performance_schema.data_locks ，
 *      可以通过performance_schema.data_locks查看事务的锁情况，
 *      和MySQL5.7及之前不同，performance_schema.data_locks不但可以看到阻塞该事务的锁，
 *      还可以看到该事务所持有的锁。
 *   ● 同时，information_schema.INNODB_LOCK_WAITS也被 performance_schema.data_lock_waits所代替。
 *
 *  我们模拟一个锁等待的场景，以下是从这三张表收集的信息
 *  锁等待场景，我们依然使用记录锁中的案例，当事务2进行等待时，查询情况如下:
 */
public class E_锁监控 {
}
